<TITLE>Drawing Primitives</TITLE>
<FILE>drawing</FILE>
GdkDrawable
-gdk_drawable_get_colormap
gdk_drawable_get_size
gdk_drawable_get_clip_region
gdk_drawable_get_visible_region
@colormap:
-<!-- ##### FUNCTION gdk_drawable_get_colormap ##### -->
-<para>
-
-</para>
-
-@drawable:
-@Returns:
-
-
<!-- ##### FUNCTION gdk_drawable_get_depth ##### -->
<para>
#if IN_HEADER(__GDK_DRAWABLE_H__)
#if IN_FILE(__GDK_DRAW_C__)
gdk_drawable_get_clip_region
-gdk_drawable_get_colormap
gdk_drawable_get_size
gdk_drawable_get_type G_GNUC_CONST
gdk_drawable_get_visible_region
GDK_DRAWABLE_GET_CLASS (drawable)->get_size (drawable, width, height);
}
-/**
- * gdk_drawable_get_colormap:
- * @drawable: a #GdkDrawable
- *
- * Gets the colormap for @drawable, if one is set; returns
- * %NULL otherwise.
- *
- * Return value: the colormap, or %NULL
- **/
-GdkColormap*
-gdk_drawable_get_colormap (GdkDrawable *drawable)
-{
- g_return_val_if_fail (GDK_IS_DRAWABLE (drawable), NULL);
-
- return GDK_DRAWABLE_GET_CLASS (drawable)->get_colormap (drawable);
-}
-
/**
* gdk_drawable_get_clip_region:
* @drawable: a #GdkDrawable
gint *width,
gint *height);
- GdkColormap* (*get_colormap) (GdkDrawable *drawable);
-
cairo_region_t* (*get_clip_region) (GdkDrawable *drawable);
cairo_region_t* (*get_visible_region) (GdkDrawable *drawable);
void gdk_drawable_get_size (GdkDrawable *drawable,
gint *width,
gint *height);
-GdkColormap* gdk_drawable_get_colormap (GdkDrawable *drawable);
cairo_region_t *gdk_drawable_get_clip_region (GdkDrawable *drawable);
cairo_region_t *gdk_drawable_get_visible_region (GdkDrawable *drawable);
GdkDrawable parent_instance;
GdkWindow *wrapper;
- GdkColormap *colormap;
GdkScreen *screen;
cairo_surface_t *surface;
if (!recursing)
gdk_offscreen_window_hide (window);
-
- g_object_unref (offscreen->colormap);
- offscreen->colormap = NULL;
}
static gboolean
return cairo_surface_reference (offscreen->surface);
}
-static GdkColormap*
-gdk_offscreen_window_get_colormap (GdkDrawable *drawable)
-{
- GdkOffscreenWindow *offscreen = GDK_OFFSCREEN_WINDOW (drawable);
-
- return offscreen->colormap;
-}
-
void
_gdk_offscreen_window_new (GdkWindow *window,
GdkScreen *screen,
offscreen->screen = screen;
- if (gdk_screen_get_system_visual (screen) == private->visual)
- {
- offscreen->colormap = gdk_screen_get_system_colormap (screen);
- g_object_ref (offscreen->colormap);
- }
- else
- offscreen->colormap = gdk_colormap_new (private->visual, FALSE);
-
offscreen->surface = gdk_window_create_similar_surface ((GdkWindow *)private->parent,
CAIRO_CONTENT_COLOR,
private->width,
object_class->finalize = gdk_offscreen_window_finalize;
drawable_class->ref_cairo_surface = gdk_offscreen_window_ref_cairo_surface;
- drawable_class->get_colormap = gdk_offscreen_window_get_colormap;
}
static void
gint *width,
gint *height);
-static GdkColormap* gdk_window_real_get_colormap (GdkDrawable *drawable);
-
static cairo_region_t* gdk_window_get_clip_region (GdkDrawable *drawable);
static cairo_region_t* gdk_window_get_visible_region (GdkDrawable *drawable);
object_class->get_property = gdk_window_get_property;
drawable_class->get_size = gdk_window_real_get_size;
- drawable_class->get_colormap = gdk_window_real_get_colormap;
drawable_class->ref_cairo_surface = gdk_window_ref_cairo_surface;
drawable_class->create_cairo_surface = gdk_window_create_cairo_surface;
drawable_class->set_cairo_clip = gdk_window_set_cairo_clip;
*height = private->height;
}
-static GdkColormap*
-gdk_window_real_get_colormap (GdkDrawable *drawable)
-{
- g_return_val_if_fail (GDK_IS_WINDOW (drawable), NULL);
-
- if (GDK_WINDOW_DESTROYED (drawable))
- return NULL;
-
- return gdk_drawable_get_colormap (((GdkWindowObject*)drawable)->impl);
-}
-
static void
gdk_window_drop_cairo_surface (GdkWindowObject *private)
{
return impl->cairo_surface;
}
-static GdkColormap*
-gdk_quartz_get_colormap (GdkDrawable *drawable)
-{
- return GDK_DRAWABLE_IMPL_QUARTZ (drawable)->colormap;
-}
-
static void
gdk_drawable_impl_quartz_finalize (GObject *object)
{
- GdkDrawableImplQuartz *impl = GDK_DRAWABLE_IMPL_QUARTZ (object);
-
- if (impl->colormap)
- g_object_unref (impl->colormap);
-
G_OBJECT_CLASS (parent_class)->finalize (object);
}
drawable_class->ref_cairo_surface = gdk_quartz_ref_cairo_surface;
drawable_class->create_cairo_surface = gdk_quartz_create_cairo_surface;
-
- drawable_class->get_colormap = gdk_quartz_get_colormap;
}
GType
GdkDrawable *wrapper;
- GdkColormap *colormap;
-
cairo_surface_t *cairo_surface;
};
}
}
- if (!private->input_only)
- {
- if (private->visual == gdk_screen_get_system_visual (_gdk_screen))
- {
- draw_impl->colormap = gdk_screen_get_system_colormap (_gdk_screen);
- g_object_ref (draw_impl->colormap);
- }
- else if (private->visual == gdk_screen_get_rgba_visual (_gdk_screen))
- {
- draw_impl->colormap = gdk_screen_get_rgba_colormap (_gdk_screen);
- g_object_ref (draw_impl->colormap);
- }
- else
- {
- draw_impl->colormap = gdk_colormap_new (private->visual, FALSE);
- }
- }
- else
- {
- draw_impl->colormap = gdk_screen_get_system_colormap (_gdk_screen);
- g_object_ref (draw_impl->colormap);
- }
-
/* Maintain the z-ordered list of children. */
if (private->parent != (GdkWindowObject *)_gdk_root)
parent_impl->sorted_children = g_list_prepend (parent_impl->sorted_children, window);
gdk_window_set_title (window, title);
- if (draw_impl->colormap == gdk_screen_get_rgba_colormap (_gdk_screen))
+ if (gdk_window_get_visual (window) == gdk_screen_get_rgba_visual (_gdk_screen))
{
[impl->toplevel setOpaque:NO];
[impl->toplevel setBackgroundColor:[NSColor clearColor]];
drawable_impl = GDK_DRAWABLE_IMPL_QUARTZ (private->impl);
drawable_impl->wrapper = GDK_DRAWABLE (private);
- drawable_impl->colormap = gdk_screen_get_system_colormap (_gdk_screen);
- g_object_ref (drawable_impl->colormap);
}
static void
int width,
int height);
-static GdkColormap* gdk_win32_get_colormap (GdkDrawable *drawable);
-
static void gdk_drawable_impl_win32_finalize (GObject *object);
static const cairo_user_data_key_t gdk_win32_cairo_key;
drawable_class->ref_cairo_surface = gdk_win32_ref_cairo_surface;
drawable_class->create_cairo_surface = gdk_win32_create_cairo_surface;
-
- drawable_class->get_colormap = gdk_win32_get_colormap;
}
static void
* Win32 specific implementations of generic functions *
*****************************************************/
-static GdkColormap*
-gdk_win32_get_colormap (GdkDrawable *drawable)
-{
- return GDK_DRAWABLE_IMPL_WIN32 (drawable)->colormap;
-}
-
/* Drawing
*/
{
GdkDrawable parent_instance;
GdkDrawable *wrapper;
- GdkColormap *colormap;
HANDLE handle;
guint hdc_count;
#include "gdkdevicemanager-win32.h"
#include "gdkenumtypes.h"
-static GdkColormap* gdk_window_impl_win32_get_colormap (GdkDrawable *drawable);
static void gdk_window_impl_win32_init (GdkWindowImplWin32 *window);
static void gdk_window_impl_win32_class_init (GdkWindowImplWin32Class *klass);
static void gdk_window_impl_win32_finalize (GObject *object);
gdk_window_impl_win32_class_init (GdkWindowImplWin32Class *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
- GdkDrawableClass *drawable_class = GDK_DRAWABLE_CLASS (klass);
parent_class = g_type_class_peek_parent (klass);
object_class->finalize = gdk_window_impl_win32_finalize;
-
- drawable_class->get_colormap = gdk_window_impl_win32_get_colormap;
}
static void
API_CALL (AdjustWindowRectEx, (rect, style, FALSE, exstyle));
}
-static GdkColormap*
-gdk_window_impl_win32_get_colormap (GdkDrawable *drawable)
-{
- GdkDrawableImplWin32 *drawable_impl;
-
- g_return_val_if_fail (GDK_IS_WINDOW_IMPL_WIN32 (drawable), NULL);
-
- drawable_impl = GDK_DRAWABLE_IMPL_WIN32 (drawable);
-
- if (!((GdkWindowObject *) drawable_impl->wrapper)->input_only &&
- drawable_impl->colormap == NULL)
- {
- drawable_impl->colormap = gdk_screen_get_system_colormap (_gdk_screen);
- g_object_ref (drawable_impl->colormap);
- }
-
- return drawable_impl->colormap;
-}
-
void
_gdk_root_window_size_init (void)
{
draw_impl->handle = GetDesktopWindow ();
draw_impl->wrapper = GDK_DRAWABLE (private);
- draw_impl->colormap = gdk_screen_get_default_colormap (_gdk_screen);
- g_object_ref (draw_impl->colormap);
private->window_type = GDK_WINDOW_ROOT;
private->depth = gdk_visual_get_system ()->depth;
dwExStyle = 0;
private->input_only = FALSE;
-
- draw_impl->colormap = gdk_screen_get_system_colormap (_gdk_screen);
- g_object_ref (draw_impl->colormap);
}
else
{
dwExStyle = WS_EX_TRANSPARENT;
private->depth = 0;
private->input_only = TRUE;
- draw_impl->colormap = gdk_screen_get_system_colormap (_gdk_screen);
- g_object_ref (draw_impl->colormap);
- GDK_NOTE (MISC, g_print ("... GDK_INPUT_ONLY, system colormap\n"));
+ GDK_NOTE (MISC, g_print ("... GDK_INPUT_ONLY\n"));
}
switch (private->window_type)
int width,
int height);
-static GdkColormap* gdk_x11_get_colormap (GdkDrawable *drawable);
-
static const cairo_user_data_key_t gdk_x11_cairo_key;
G_DEFINE_TYPE (GdkDrawableImplX11, _gdk_drawable_impl_x11, GDK_TYPE_DRAWABLE)
drawable_class->ref_cairo_surface = gdk_x11_ref_cairo_surface;
drawable_class->create_cairo_surface = gdk_x11_create_cairo_surface;
-
- drawable_class->get_colormap = gdk_x11_get_colormap;
}
static void
* X11 specific implementations of generic functions *
*****************************************************/
-static GdkColormap*
-gdk_x11_get_colormap (GdkDrawable *drawable)
-{
- GdkDrawableImplX11 *impl;
-
- impl = GDK_DRAWABLE_IMPL_X11 (drawable);
-
- return impl->colormap;
-}
-
static GdkDrawable *
get_impl_drawable (GdkDrawable *drawable)
{
GdkDrawable *wrapper;
- GdkColormap *colormap;
-
Window xid;
GdkScreen *screen;
static void gdk_window_x11_set_background (GdkWindow *window,
cairo_pattern_t *pattern);
-static GdkColormap* gdk_window_impl_x11_get_colormap (GdkDrawable *drawable);
static void gdk_window_impl_x11_finalize (GObject *object);
static void gdk_window_impl_iface_init (GdkWindowImplIface *iface);
gdk_window_impl_x11_class_init (GdkWindowImplX11Class *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
- GdkDrawableClass *drawable_class = GDK_DRAWABLE_CLASS (klass);
object_class->finalize = gdk_window_impl_x11_finalize;
-
- drawable_class->get_colormap = gdk_window_impl_x11_get_colormap;
}
static void
_gdk_x11_window_tmp_reset_bg (window, FALSE);
}
-static GdkColormap*
-gdk_window_impl_x11_get_colormap (GdkDrawable *drawable)
-{
- GdkDrawableImplX11 *drawable_impl;
-
- g_return_val_if_fail (GDK_IS_WINDOW_IMPL_X11 (drawable), NULL);
-
- drawable_impl = GDK_DRAWABLE_IMPL_X11 (drawable);
-
- if (!((GdkWindowObject *) drawable_impl->wrapper)->input_only &&
- drawable_impl->colormap == NULL)
- {
- XWindowAttributes window_attributes;
- GdkVisual *visual;
-
- XGetWindowAttributes (GDK_SCREEN_XDISPLAY (drawable_impl->screen),
- drawable_impl->xid,
- &window_attributes);
-
- visual = gdk_x11_screen_lookup_visual (drawable_impl->screen,
- window_attributes.visual->visualid);
- drawable_impl->colormap = gdk_x11_colormap_foreign_new (visual,
- window_attributes.colormap);
- }
-
- return drawable_impl->colormap;
-}
-
void
_gdk_windowing_window_init (GdkScreen * screen)
{
draw_impl->screen = screen;
draw_impl->xid = screen_x11->xroot_window;
draw_impl->wrapper = GDK_DRAWABLE (private);
- draw_impl->colormap = gdk_screen_get_system_colormap (screen);
- g_object_ref (draw_impl->colormap);
private->window_type = GDK_WINDOW_ROOT;
private->depth = DefaultDepthOfScreen (screen_x11->xscreen);
{
class = InputOutput;
- if ((gdk_screen_get_system_visual (screen)) == private->visual)
- {
- draw_impl->colormap = gdk_screen_get_system_colormap (screen);
- g_object_ref (draw_impl->colormap);
- }
- else
- {
- draw_impl->colormap = gdk_colormap_new (private->visual, FALSE);
- }
-
xattributes.background_pixel = BlackPixel (xdisplay, screen_x11->screen_num);
xattributes.border_pixel = BlackPixel (xdisplay, screen_x11->screen_num);
else
{
class = InputOnly;
- draw_impl->colormap = gdk_screen_get_system_colormap (screen);
- g_object_ref (draw_impl->colormap);
}
if (private->width > 65535 ||
* On X11, this works only on X screens with a compositing manager
* running.
*
- * For setting up per-pixel alpha, see gdk_screen_get_rgba_colormap().
+ * For setting up per-pixel alpha, see gdk_screen_get_rgba_visual().
* For making non-toplevel windows translucent, see
* gdk_window_set_composited().
*